#pragma once

#ifndef __LIT__NAME__GENERATOR__HH__
#define __LIT__NAME__GENERATOR__HH__

#include <string>

namespace Lit
{
	class LIT_API NameGenerator
	{
	protected:
		std::string mBase, mSep, mExt;
		size_t mCounter;
	public:
		NameGenerator( const std::string &base = "new", const std::string &ext = "cpp", const std::string &separator = "_" );
		NameGenerator( const NameGenerator& rk );

		std::string peek(bool with_ext=true) const;
		std::string generate(bool with_ext=true);
		void reset();

		void _setCount(size_t cnt );
	};
};
#endif